]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
overview: Provide public access for search provider registration
authorAndy Holmes <andrew.g.r.holmes@gmail.com>
Thu, 1 Jun 2023 22:54:59 +0000 (15:54 -0700)
committerAndy Holmes <andyholmes@gnome.org>
Thu, 1 Jun 2023 22:54:59 +0000 (15:54 -0700)
Provide a reasonably public way to register and unregister search
providers, without adding too much API.

`Main.overview.searchController` provides access that may be generally
useful, while `SearchController.addProvider()` and
`SearchController.removeProvider()` provide a simple interface for
extensions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2783>

js/ui/overview.js
js/ui/overviewControls.js
js/ui/searchController.js

index c2c2e5326b0896c03441e75d0534ef84ea23794b..3bd62afe1f870c6194757f8840a9f3736e1c55b0 100644 (file)
@@ -102,6 +102,10 @@ class OverviewActor extends St.BoxLayout {
         return this._controls.dash;
     }
 
+    get searchController() {
+        return this._controls.searchController;
+    }
+
     get searchEntry() {
         return this._controls.searchEntry;
     }
@@ -708,6 +712,10 @@ var Overview = class extends Signals.EventEmitter {
         return this.dash.showAppsButton;
     }
 
+    get searchController() {
+        return this._overview.searchController;
+    }
+
     get searchEntry() {
         return this._overview.searchEntry;
     }
index 18df17278f80508adf89e5a45fde1d3bb38212a3..05898955da99c44bb44d46c6a9f39b4e7d13dd35 100644 (file)
@@ -871,6 +871,10 @@ class ControlsManager extends St.Widget {
         });
     }
 
+    get searchController() {
+        return this._searchController;
+    }
+
     get searchEntry() {
         return this._searchEntry;
     }
index ef7a9d50ec173595193e25eaafd90a69f7add65f..9864b8df62955849bb6e56eef7a1cd90c4886bc3 100644 (file)
@@ -320,6 +320,26 @@ var SearchController = GObject.registerClass({
         return Clutter.EVENT_PROPAGATE;
     }
 
+    /**
+     * addProvider:
+     * @param {object} provider - a search provider implementation
+     *
+     * Add a search provider to the controller.
+     */
+    addProvider(provider) {
+        this._searchResults._registerProvider(provider);
+    }
+
+    /**
+     * removeProvider:
+     * @param {object} provider - a search provider implementation
+     *
+     * Remove a search provider from the controller.
+     */
+    removeProvider(provider) {
+        this._searchResults._unregisterProvider(provider);
+    }
+
     get searchActive() {
         return this._searchActive;
     }